%Date:          01/10/08
%Syntax:        setTemplates.m;
%Este script itera a través de los archivos de ondas de entrenamiento para cada 
%persona, obtiene el feature vector y matriz para CADA ARCHIVO y guarda 
%todas las matrices obtenidas en un archivo .mat como el template de referencia.
%Para entrenar el sistema con otras palabras, hay que cambiar el directorio 
%y la convención de nomenclatura de los archivos para que sean acordes a los  
%nuevos archivos. Deben ser archivos en formato WAV. 32 bit floating.
%Mono.16KHz
%directorio Ubuntu: /home/paula/espich/TrainigData/Nombre de la
%persona/archivos.wav
%directorio Windows C:/espich/TrainingData/Nombre de la
%persona/archivo.wav

ncoeff=20;               %Número de coeficientes mfcc segun O
UTTERANCES = 12;         %No de 'palabras' en el Training Set. Todos tienen 12.  
          
fMatrix1 = cell(1,UTTERANCES);
fMatrix2 = cell(1,UTTERANCES);
%fMatrix3 = cell(1,UTTERANCES);
%fMatrix4 = cell(1,UTTERANCES);
%fMatrix5 = cell(1,UTTERANCES);

%Las matrices que se calculan aquí podrían reunirse en una matriz tridimensional única. 

for	j = 1:UTTERANCES
	q = ['/home/paula/espich/TrainingData/Paula/5_' num2str(j) '.wav']; %Cambiar el Directorio donde se encuentra el training set
	[speechIn1,FS1] = wavread(q);
	speechIn1 = myVAD(speechIn1); %Recorte de endpoint de la voz 
	fMatrix1(1,j) = {mfccf(ncoeff,speechIn1,FS1)}; %los mfcc se computan aquí
end

for	k = 1:UTTERANCES
	 q = ['/home/paula/espich/TrainingData/Leo/5_' num2str(k) '.wav'];%Cambiar el Directorio donde se encuentra el training set
	 [speechIn2,FS2] = wavread(q);
	 speechIn2 = myVAD(speechIn2); 
	 fMatrix2(1,k) = {mfccf(ncoeff,speechIn2,FS2)}; 
end

%for	l = 1:UTTERANCES
%    	q = ['/home/paula/espich/TrainingData/Paula/5_' num2str(l) '.wav'];%Cambiar el Directorio donde se encuentra el training set
%	[speechIn3,FS3] = wavread(q);
%	speechIn3 = myVAD(speechIn3); 
%	fMatrix3(1,l) = {mfccf(ncoeff,speechIn3,FS3)};
%end

%for m = 1:UTTERANCES
%    q = ['/home/paula/espich/TrainingData/Paula/5_' num2str(m) '.wav']; %Cambiar el Directorio donde se encuentra el training set
%    [speechIn4,FS4] = wavread(q);
%    speechIn4 = myVAD(speechIn4); 
%    fMatrix4(1,m) = {mfccf(ncoeff,speechIn4,FS4)}; 
%end

%for n = 1:UTTERANCES
%    q = ['/home/paula/espich/TrainingData/Paula/5_' num2str(n) '.wav'];%Cambiar el Directorio donde se encuentra el training set
%    [speechIn5,FS5] = wavread(q);
%    speechIn5 = myVAD(speechIn5); 
%    fMatrix5(1,n) = {mfccf(ncoeff,speechIn5,FS5)}; 
%end

%Convierte las celdas que contienen a las matrices a estructuras y las guarda en
%archivos .mat en el directorio de trabajo.

%Campos o comandos
fields = {'a','e','i','o','u','Subir','Bajar','Izquierda','Derecha','Avanzar','Retroceder','Alto'};
s1 = cell2struct(fMatrix1, fields, 2);
save Vectors1.mat -struct s1;
s2 = cell2struct(fMatrix2, fields, 2);
save Vectors2.mat -struct s2;
%s3 = cell2struct(fMatrix3, fields, 2);
%save Vectors3.mat -struct s3;
%s4 = cell2struct(fMatrix4, fields, 2);
%save Vectors4.mat -struct s4;
%s5 = cell2struct(fMatrix5, fields, 2);
%save Vectors5.mat -struct s5;
    
